<?php
/**
 * JD_CSS 类 
 * 網頁中引入CSS文件的隊列
 * 調用enqueue()方法把要引入的css文件的路徑加入到隊列之中
 * 調用export()方法時按照css文件入隊順序在网页中输出css
 * (// TODO对输出的css内容进行合并压缩处理)
 * 
 * @package		JD
 * @author tongliang
 *
 */
class JD_Css extends JD_Queue{
	function __construct() {
		parent::__construct();
	}
	
	/**
	 * 入队操作, 将对象加入队尾 ,不允许加入重复元素
	 * @param mixed $obj
	 */
	function enqueue($obj){
		if ($this->indexOf($obj) == -1){
			parent::enqueue($obj);
		}
	}
	
	/**
	 * 输出Css
	 * @param $ret_string	返回字符串,不回顯到页面
	 * @return mixed , $ret_string为true时返回字符串,否则无返回值
	 */
	function export($ret_string=false){
		if ($ret_string){
			ob_start();
		}
		while ( ! $this->isEmpty()){
			$href = $this->dequeue();
			$base = base_url();
			if ( strpos($href,base_url()) !== 0 ){
				$href  = $base.'css/'.$href;
			}
//			echo sprintf('<link href="%s.css" rel="stylesheet" type="text/css"/>',$href);
			$base_escape = preg_replace('/\//','\\/',$base);
			$href = preg_replace( "/$base_escape/i","",$href);
			$load_css_path = $base.'load-style.php?load='.$href;
			echo sprintf('<link href="%s.css" rel="stylesheet" type="text/css"/>',$load_css_path);
	 	}
		if ($ret_string){
			$data = ob_get_contents();
			ob_end_clean();
			return $data ;
		}
	}
}
/* End of file */